package 力扣题库;

public class p572另一棵树的子树 {

    public boolean isSameTree(TreeNode p, TreeNode q) {
        //判断根是否相同
        if (p==null && q==null) {
            return true;
        }
        if (p==null || q==null) {
            return false;
        }
        if (p.val != q.val) {
            return false;
        }
//        if (p.val==q.val) {
//            return true;
//        }else {
//            return false;
//        }

        //判断左右子树是否相同
        if (!isSameTree(p.left,q.left)) {
            return false;
        }
        if (isSameTree(p.right,q.right)) {
            return true;
        }
        return false;
    }


    public boolean isSubtree(TreeNode root, TreeNode subRoot) {

        if (root==null || subRoot==null) {
            return false;
        }

        //判断两棵树是否相同，相同则返回true
        if (isSameTree(root,subRoot)) return true;

        if (isSubtree(root.left,subRoot)) {
            return true;
        }
        return isSubtree(root.right,subRoot);
    }
}
